Skip to content

Conversation

matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Sep 20, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

madsmtm and others added 16 commits September 19, 2025 10:52
Emit `#[rustc_allocator]` etc. attributes on the functions generated
by the `#[global_allocator]` macro, which will emit LLVM attributes
like `"alloc-family"`. If the module with the global allocator
participates in LTO, this ensures that the attributes typically
emitted on the allocator declarations are not lost if the
definition is imported.
This helps us avoid the hardcoded lists elsewhere.
Fixes building std for any platform with an unsupported thread
abstraction. This includes {aarch64,armv7,x86_64}-unknown-trusty and
riscv32im-risc0-zkvm-elf, which explicitly include the unsupported
module, and platforms with no PAL.

Bug fix for PR 145177 (std: move thread into sys).
The macro is now builtin.
…oratrieb

generate list of all variants with `target_spec_enum`

This helps us avoid the hardcoded lists elsewhere.

r? `@Noratrieb`
Fix and provide instructions for running test suite on Apple simulators

The following now works:

```sh
./x test --host='' --target aarch64-apple-ios-sim --skip tests/debuginfo
./x test --host='' --target aarch64-apple-tvos-sim --skip tests/debuginfo
./x test --host='' --target aarch64-apple-watchos-sim --skip tests/debuginfo
./x test --host='' --target aarch64-apple-visionos-sim --skip tests/debuginfo
```

I have documented the setup I used [in the `rustc-dev-guide`](https://rustc-dev-guide.rust-lang.org/tests/running.html#testing-on-emulators), it's fairly standard use of `remote-test-server` (with a small fix to library load paths which I've made in the first commit).

I first tried the somewhat simpler `target.aarch64-apple-ios-sim.runner = "xcrun simctl spawn $UDID"`, but that doesn't work as required libraries etc. also need to be copied to the device.

The debuginfo tests fail, I think because the debug info in `.dSYM` isn't available. I am yet unsure exactly how to fix this, either we need to copy that directory to the target as well, or we need to configure `lldb` somehow to read it from the host.

I decided to not add this to our CI, since I suspect we wouldn't gain much from it? Running on the simulator still uses the host Darwin kernel, it's basically just configured to run in another mode with more restricted permissions and different system libraries.

r? jieyouxu
CC `@simlay,` you're a lot more familiar with `xcrun simctl` than I.
…cote

Add attributes for #[global_allocator] functions

Emit `#[rustc_allocator]` etc. attributes on the functions generated by the `#[global_allocator]` macro, which will emit LLVM attributes like `"alloc-family"`. If the module with the global allocator participates in LTO, this ensures that the attributes typically emitted on the allocator declarations are not lost if the definition is imported.

There is a similar issue when the allocator shim is used, but I've opted not to fix that case in this PR, because doing that cleanly is somewhat gnarly.

Related to rust-lang#145995.
…jieyouxu

Allow running `x <cmd> <path>` from a different directory

Fixes: rust-lang#146772

r? `@jieyouxu`
…=joboet

Fix unsupported `std::sys::thread` after move

Fixes building std for any platform with an unsupported thread abstraction. This includes {aarch64,armv7,x86_64}-unknown-trusty and riscv32im-risc0-zkvm-elf, which explicitly include the unsupported module, and platforms with no PAL.

Bug fix for rust-lang#145177 (std: move thread into sys).

Also fix the `std` build for xtensa, which I incidentally found while looking for an unsupported platform.

r? `@joboet`
@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-rustc-dev-guide Area: rustc-dev-guide A-testsuite Area: The testsuite used to check the correctness of rustc O-unix Operating system: Unix-like S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Sep 20, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Sep 20, 2025

📌 Commit b48021c has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 20, 2025
@bors
Copy link
Collaborator

bors commented Sep 20, 2025

⌛ Testing commit b48021c with merge 382111a...

bors added a commit that referenced this pull request Sep 20, 2025
Rollup of 6 pull requests

Successful merges:

 - #144592 (generate list of all variants with `target_spec_enum`)
 - #146762 (Fix and provide instructions for running test suite on Apple simulators)
 - #146766 (Add attributes for #[global_allocator] functions)
 - #146770 (fixes for numerous clippy warnings)
 - #146774 (Allow running `x <cmd> <path>` from a different directory)
 - #146800 (Fix unsupported `std::sys::thread` after move)

r? `@ghost`
`@rustbot` modify labels: rollup
@rust-log-analyzer
Copy link
Collaborator

The job armhf-gnu failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
test [ui] tests/ui/autoref-autoderef/autoderef-privacy.rs ... ok
test [ui] tests/ui/autoref-autoderef/autoderef-vec-to-slice-by-value.rs ... ok
test [ui] tests/ui/autoref-autoderef/autoderef-vec-box-fn-36786.rs ... ok
test [ui] tests/ui/autoref-autoderef/deref-ambiguity-becomes-nonambiguous.rs ... ok
test [ui] tests/ui/backtrace/apple-no-dsymutil.rs ... ignored, ignored when running tests remotely (needs the compiler-produced `.o` file to be copied to the device)
test [ui] tests/ui/autoref-autoderef/deref-into-array.rs ... ok
test [ui] tests/ui/autoref-autoderef/autoref-intermediate-types-issue-3585.rs ... ok
test [ui] tests/ui/autoref-autoderef/deref-chain-method-calls-13264.rs ... ok
test [ui] tests/ui/backtrace/line-tables-only.rs ... ok
test [ui] tests/ui/backtrace/dylib-dep.rs ... ok
---

---- [codegen] tests/codegen-llvm/global-allocator-attributes.rs stdout ----
------FileCheck stdout------------------------------

------FileCheck stderr------------------------------
/checkout/tests/codegen-llvm/global-allocator-attributes.rs:13:17: error: CHECK-NEXT: expected string not found in input
 // CHECK-NEXT: define noalias{{.*}} ptr @{{.*}}__rust_alloc(i64 {{.*}}%size, i64 allocalign{{.*}} %align)
                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/global-allocator-attributes/global-allocator-attributes.ll:50:94: note: scanning from here
; Function Attrs: cold noreturn allockind("alloc,uninitialized,aligned") allocsize(0) uwtable
                                                                                             ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/global-allocator-attributes/global-allocator-attributes.ll:51:44: note: possible intended match here
define noalias noundef nonnull ptr @_RNvCs8tQ9On8d7yC_7___rustc12___rust_alloc(i32 noundef %size, i32 allocalign noundef %align) unnamed_addr #1 {
                                           ^
/checkout/tests/codegen-llvm/global-allocator-attributes.rs:20:17: error: CHECK-NEXT: expected string not found in input
 // CHECK-NEXT: define void @{{.*}}__rust_dealloc(ptr allocptr{{.*}} %ptr, i64 {{.*}} %size, i64 {{.*}} %align)
                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/global-allocator-attributes/global-allocator-attributes.ll:62:58: note: scanning from here
; Function Attrs: cold noreturn allockind("free") uwtable
                                                         ^
/checkout/tests/codegen-llvm/global-allocator-attributes.rs:27:17: error: CHECK-NEXT: expected string not found in input
 // CHECK-NEXT: define noalias{{.*}} ptr @{{.*}}__rust_realloc(ptr allocptr{{.*}} %ptr, i64 {{.*}} %size, i64 allocalign{{.*}} %align, i64 {{.*}} %new_size)
                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/global-allocator-attributes/global-allocator-attributes.ll:74:82: note: scanning from here
; Function Attrs: cold noreturn allockind("realloc,aligned") allocsize(3) uwtable
                                                                                 ^
/checkout/tests/codegen-llvm/global-allocator-attributes.rs:34:17: error: CHECK-NEXT: expected string not found in input
 // CHECK-NEXT: define noalias{{.*}} ptr @{{.*}}__rust_alloc_zeroed(i64 {{.*}} %size, i64 allocalign{{.*}} %align)
                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/global-allocator-attributes/global-allocator-attributes.ll:86:87: note: scanning from here
; Function Attrs: cold noreturn allockind("alloc,zeroed,aligned") allocsize(0) uwtable
                                                                                      ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/global-allocator-attributes/global-allocator-attributes.ll:87:52: note: possible intended match here
define noalias noundef nonnull ptr @_RNvCs8tQ9On8d7yC_7___rustc19___rust_alloc_zeroed(i32 noundef %size, i32 allocalign noundef %align) unnamed_addr #4 {
                                                   ^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/global-allocator-attributes/global-allocator-attributes.ll
Check file: /checkout/tests/codegen-llvm/global-allocator-attributes.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           1: ; ModuleID = 'global_allocator_attributes.9107941623879d1c-cgu.0' 
           2: source_filename = "global_allocator_attributes.9107941623879d1c-cgu.0" 
           3: target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" 
           4: target triple = "arm-unknown-linux-gnueabihf" 
           5:  
           6: @alloc_476509aa7047bd805d630c6546685797 = private unnamed_addr constant [14 x i8] c"explicit panic", align 1 
           7: @alloc_4adda3ed1088f74f07ee43568cdd9f39 = private unnamed_addr constant [60 x i8] c"/checkout/tests/codegen-llvm/global-allocator-attributes.rs\00", align 1 
           8: @alloc_b770eaa3f4771da96efd94be0aca7ca5 = private unnamed_addr constant <{ ptr, [12 x i8] }> <{ ptr @alloc_4adda3ed1088f74f07ee43568cdd9f39, [12 x i8] c";\00\00\00\0E\00\00\00\0D\00\00\00" }>, align 4 
           9: @alloc_a5aa75597376cd18f9df6ea9fddc2db2 = private unnamed_addr constant <{ ptr, [12 x i8] }> <{ ptr @alloc_4adda3ed1088f74f07ee43568cdd9f39, [12 x i8] c";\00\00\00\15\00\00\00\0D\00\00\00" }>, align 4 
          10: @alloc_fea0b74bc1f394cd9f32c70385fabd3f = private unnamed_addr constant <{ ptr, [12 x i8] }> <{ ptr @alloc_4adda3ed1088f74f07ee43568cdd9f39, [12 x i8] c";\00\00\00\1C\00\00\00\0D\00\00\00" }>, align 4 
          11: @alloc_672a73527c968cb7e9717bc22e580e47 = private unnamed_addr constant <{ ptr, [12 x i8] }> <{ ptr @alloc_4adda3ed1088f74f07ee43568cdd9f39, [12 x i8] c";\00\00\00#\00\00\00\0D\00\00\00" }>, align 4 
          12:  
          13: ; <global_allocator_attributes::foobar::Allocator as core::alloc::global::GlobalAlloc>::alloc 
          14: ; Function Attrs: cold noreturn uwtable 
          15: define noalias noundef nonnull ptr @"_ZN99_$LT$global_allocator_attributes..foobar..Allocator$u20$as$u20$core..alloc..global..GlobalAlloc$GT$5alloc17h6a865fb939c32a3bE"(ptr noalias noundef nonnull readonly align 1 captures(none) %self, i32 noundef range(i32 1, -2147483647) %layout.0, i32 noundef %layout.1) unnamed_addr #0 { 
          16: start: 
          17: ; call std::panicking::begin_panic 
          18:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_b770eaa3f4771da96efd94be0aca7ca5) #7 
          19:  unreachable 
          20: } 
          21:  
          22: ; <global_allocator_attributes::foobar::Allocator as core::alloc::global::GlobalAlloc>::dealloc 
          23: ; Function Attrs: cold noreturn uwtable 
          24: define void @"_ZN99_$LT$global_allocator_attributes..foobar..Allocator$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7dealloc17h8a2527dd1e1c5938E"(ptr noalias noundef nonnull readonly align 1 captures(none) %self, ptr noundef readnone captures(none) %ptr, i32 noundef range(i32 1, -2147483647) %layout.0, i32 noundef %layout.1) unnamed_addr #0 { 
          25: start: 
          26: ; call std::panicking::begin_panic 
          27:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_a5aa75597376cd18f9df6ea9fddc2db2) #7 
          28:  unreachable 
          29: } 
          30:  
          31: ; <global_allocator_attributes::foobar::Allocator as core::alloc::global::GlobalAlloc>::realloc 
          32: ; Function Attrs: cold noreturn uwtable 
          33: define noalias noundef nonnull ptr @"_ZN99_$LT$global_allocator_attributes..foobar..Allocator$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7realloc17h2362b3af3e64fce2E"(ptr noalias noundef nonnull readonly align 1 captures(none) %self, ptr noundef readnone captures(none) %ptr, i32 noundef range(i32 1, -2147483647) %layout.0, i32 noundef %layout.1, i32 noundef %new_size) unnamed_addr #0 { 
          34: start: 
          35: ; call std::panicking::begin_panic 
          36:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_fea0b74bc1f394cd9f32c70385fabd3f) #7 
          37:  unreachable 
          38: } 
          39:  
          40: ; <global_allocator_attributes::foobar::Allocator as core::alloc::global::GlobalAlloc>::alloc_zeroed 
          41: ; Function Attrs: cold noreturn uwtable 
          42: define noalias noundef nonnull ptr @"_ZN99_$LT$global_allocator_attributes..foobar..Allocator$u20$as$u20$core..alloc..global..GlobalAlloc$GT$12alloc_zeroed17hdd644c90bc5da11cE"(ptr noalias noundef nonnull readonly align 1 captures(none) %self, i32 noundef range(i32 1, -2147483647) %layout.0, i32 noundef %layout.1) unnamed_addr #0 { 
          43: start: 
          44: ; call std::panicking::begin_panic 
          45:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_672a73527c968cb7e9717bc22e580e47) #7 
          46:  unreachable 
          47: } 
          48:  
          49: ; __rustc::__rust_alloc 
          50: ; Function Attrs: cold noreturn allockind("alloc,uninitialized,aligned") allocsize(0) uwtable 
next:13'0                                                                                                  X error: no match found
          51: define noalias noundef nonnull ptr @_RNvCs8tQ9On8d7yC_7___rustc12___rust_alloc(i32 noundef %size, i32 allocalign noundef %align) unnamed_addr #1 { 
next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
next:13'1                                                ?                                                                                                        possible intended match
          52: start: 
next:13'0     ~~~~~~~
          53:  %0 = add i32 %align, -1 
next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
          54:  %1 = icmp sgt i32 %0, -1 
next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          55:  tail call void @llvm.assume(i1 %1) 
next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          56: ; call std::panicking::begin_panic 
next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          57:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_b770eaa3f4771da96efd94be0aca7ca5) #7 
next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          58:  unreachable 
next:13'0     ~~~~~~~~~~~~~
          59: } 
next:13'0     ~~
          60:  
next:13'0     ~
          61: ; __rustc::__rust_dealloc 
next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
          62: ; Function Attrs: cold noreturn allockind("free") uwtable 
next:20                                                                X error: no match found
          63: define void @_RNvCs8tQ9On8d7yC_7___rustc14___rust_dealloc(ptr allocptr noundef readnone captures(none) %ptr, i32 noundef %size, i32 noundef %align) unnamed_addr #2 { 
next:20       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          64: start: 
next:20       ~~~~~~~
          65:  %0 = add i32 %align, -1 
next:20       ~~~~~~~~~~~~~~~~~~~~~~~~~
          66:  %1 = icmp sgt i32 %0, -1 
next:20       ~~~~~~~~~~~~~~~~~~~~~~~~~~
          67:  tail call void @llvm.assume(i1 %1) 
next:20       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          68: ; call std::panicking::begin_panic 
next:20       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          69:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_a5aa75597376cd18f9df6ea9fddc2db2) #7 
next:20       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          70:  unreachable 
next:20       ~~~~~~~~~~~~~
          71: } 
next:20       ~~
          72:  
next:20       ~
          73: ; __rustc::__rust_realloc 
next:20       ~~~~~~~~~~~~~~~~~~~~~~~~~
          74: ; Function Attrs: cold noreturn allockind("realloc,aligned") allocsize(3) uwtable 
next:27                                                                                        X error: no match found
          75: define noalias noundef nonnull ptr @_RNvCs8tQ9On8d7yC_7___rustc14___rust_realloc(ptr allocptr noundef readnone captures(none) %ptr, i32 noundef %size, i32 allocalign noundef %align, i32 noundef %new_size) unnamed_addr #3 { 
next:27       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          76: start: 
next:27       ~~~~~~~
          77:  %0 = add i32 %align, -1 
next:27       ~~~~~~~~~~~~~~~~~~~~~~~~~
          78:  %1 = icmp sgt i32 %0, -1 
next:27       ~~~~~~~~~~~~~~~~~~~~~~~~~~
          79:  tail call void @llvm.assume(i1 %1) 
next:27       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          80: ; call std::panicking::begin_panic 
next:27       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          81:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_fea0b74bc1f394cd9f32c70385fabd3f) #7 
next:27       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          82:  unreachable 
next:27       ~~~~~~~~~~~~~
          83: } 
next:27       ~~
          84:  
next:27       ~
          85: ; __rustc::__rust_alloc_zeroed 
next:27       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          86: ; Function Attrs: cold noreturn allockind("alloc,zeroed,aligned") allocsize(0) uwtable 
next:34'0                                                                                           X error: no match found
          87: define noalias noundef nonnull ptr @_RNvCs8tQ9On8d7yC_7___rustc19___rust_alloc_zeroed(i32 noundef %size, i32 allocalign noundef %align) unnamed_addr #4 { 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
next:34'1                                                        ?                                                                                                       possible intended match
          88: start: 
next:34'0     ~~~~~~~
          89:  %0 = add i32 %align, -1 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
          90:  %1 = icmp sgt i32 %0, -1 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          91:  tail call void @llvm.assume(i1 %1) 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          92: ; call std::panicking::begin_panic 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          93:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_672a73527c968cb7e9717bc22e580e47) #7 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          94:  unreachable 
next:34'0     ~~~~~~~~~~~~~
          95: } 
next:34'0     ~~
          96:  
next:34'0     ~
          97: ; std::panicking::begin_panic 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          98: ; Function Attrs: cold minsize noinline noreturn optsize uwtable 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          99: declare void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance), i32 noundef, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16)) unnamed_addr #5 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         100:  
next:34'0     ~
         101: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         102: declare void @llvm.assume(i1 noundef) #6 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         103:  
next:34'0     ~
         104: attributes #0 = { cold noreturn uwtable "target-cpu"="generic" "target-features"="+strict-align,+v6,+vfp2,-d32" } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         105: attributes #1 = { cold noreturn allockind("alloc,uninitialized,aligned") allocsize(0) uwtable "alloc-family"="__rust_alloc" "target-cpu"="generic" "target-features"="+strict-align,+v6,+vfp2,-d32" } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         106: attributes #2 = { cold noreturn allockind("free") uwtable "alloc-family"="__rust_alloc" "target-cpu"="generic" "target-features"="+strict-align,+v6,+vfp2,-d32" } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         107: attributes #3 = { cold noreturn allockind("realloc,aligned") allocsize(3) uwtable "alloc-family"="__rust_alloc" "target-cpu"="generic" "target-features"="+strict-align,+v6,+vfp2,-d32" } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         108: attributes #4 = { cold noreturn allockind("alloc,zeroed,aligned") allocsize(0) uwtable "alloc-family"="__rust_alloc" "target-cpu"="generic" "target-features"="+strict-align,+v6,+vfp2,-d32" } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         109: attributes #5 = { cold minsize noinline noreturn optsize uwtable "target-cpu"="generic" "target-features"="+strict-align,+v6,+vfp2,-d32" } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         110: attributes #6 = { mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         111: attributes #7 = { noreturn } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         112:  
next:34'0     ~
         113: !llvm.module.flags = !{!0} 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
         114: !llvm.ident = !{!1} 
next:34'0     ~~~~~~~~~~~~~~~~~~~~
         115:  
next:34'0     ~
         116: !0 = !{i32 8, !"PIC Level", i32 2} 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         117: !1 = !{!"rustc version 1.92.0-nightly (382111ae7 2025-09-20)"} 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>

------------------------------------------

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck" "--input-file" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/global-allocator-attributes/global-allocator-attributes.ll" "/checkout/tests/codegen-llvm/global-allocator-attributes.rs" "--check-prefix=CHECK" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/codegen-llvm/global-allocator-attributes.rs:13:17: error: CHECK-NEXT: expected string not found in input
 // CHECK-NEXT: define noalias{{.*}} ptr @{{.*}}__rust_alloc(i64 {{.*}}%size, i64 allocalign{{.*}} %align)
                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/global-allocator-attributes/global-allocator-attributes.ll:50:94: note: scanning from here
; Function Attrs: cold noreturn allockind("alloc,uninitialized,aligned") allocsize(0) uwtable
                                                                                             ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/global-allocator-attributes/global-allocator-attributes.ll:51:44: note: possible intended match here
define noalias noundef nonnull ptr @_RNvCs8tQ9On8d7yC_7___rustc12___rust_alloc(i32 noundef %size, i32 allocalign noundef %align) unnamed_addr #1 {
                                           ^
/checkout/tests/codegen-llvm/global-allocator-attributes.rs:20:17: error: CHECK-NEXT: expected string not found in input
 // CHECK-NEXT: define void @{{.*}}__rust_dealloc(ptr allocptr{{.*}} %ptr, i64 {{.*}} %size, i64 {{.*}} %align)
                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/global-allocator-attributes/global-allocator-attributes.ll:62:58: note: scanning from here
; Function Attrs: cold noreturn allockind("free") uwtable
                                                         ^
/checkout/tests/codegen-llvm/global-allocator-attributes.rs:27:17: error: CHECK-NEXT: expected string not found in input
 // CHECK-NEXT: define noalias{{.*}} ptr @{{.*}}__rust_realloc(ptr allocptr{{.*}} %ptr, i64 {{.*}} %size, i64 allocalign{{.*}} %align, i64 {{.*}} %new_size)
                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/global-allocator-attributes/global-allocator-attributes.ll:74:82: note: scanning from here
; Function Attrs: cold noreturn allockind("realloc,aligned") allocsize(3) uwtable
                                                                                 ^
/checkout/tests/codegen-llvm/global-allocator-attributes.rs:34:17: error: CHECK-NEXT: expected string not found in input
 // CHECK-NEXT: define noalias{{.*}} ptr @{{.*}}__rust_alloc_zeroed(i64 {{.*}} %size, i64 allocalign{{.*}} %align)
                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/global-allocator-attributes/global-allocator-attributes.ll:86:87: note: scanning from here
; Function Attrs: cold noreturn allockind("alloc,zeroed,aligned") allocsize(0) uwtable
                                                                                      ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/global-allocator-attributes/global-allocator-attributes.ll:87:52: note: possible intended match here
define noalias noundef nonnull ptr @_RNvCs8tQ9On8d7yC_7___rustc19___rust_alloc_zeroed(i32 noundef %size, i32 allocalign noundef %align) unnamed_addr #4 {
                                                   ^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/global-allocator-attributes/global-allocator-attributes.ll
Check file: /checkout/tests/codegen-llvm/global-allocator-attributes.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           1: ; ModuleID = 'global_allocator_attributes.9107941623879d1c-cgu.0' 
           2: source_filename = "global_allocator_attributes.9107941623879d1c-cgu.0" 
           3: target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" 
           4: target triple = "arm-unknown-linux-gnueabihf" 
           5:  
           6: @alloc_476509aa7047bd805d630c6546685797 = private unnamed_addr constant [14 x i8] c"explicit panic", align 1 
           7: @alloc_4adda3ed1088f74f07ee43568cdd9f39 = private unnamed_addr constant [60 x i8] c"/checkout/tests/codegen-llvm/global-allocator-attributes.rs\00", align 1 
           8: @alloc_b770eaa3f4771da96efd94be0aca7ca5 = private unnamed_addr constant <{ ptr, [12 x i8] }> <{ ptr @alloc_4adda3ed1088f74f07ee43568cdd9f39, [12 x i8] c";\00\00\00\0E\00\00\00\0D\00\00\00" }>, align 4 
           9: @alloc_a5aa75597376cd18f9df6ea9fddc2db2 = private unnamed_addr constant <{ ptr, [12 x i8] }> <{ ptr @alloc_4adda3ed1088f74f07ee43568cdd9f39, [12 x i8] c";\00\00\00\15\00\00\00\0D\00\00\00" }>, align 4 
          10: @alloc_fea0b74bc1f394cd9f32c70385fabd3f = private unnamed_addr constant <{ ptr, [12 x i8] }> <{ ptr @alloc_4adda3ed1088f74f07ee43568cdd9f39, [12 x i8] c";\00\00\00\1C\00\00\00\0D\00\00\00" }>, align 4 
          11: @alloc_672a73527c968cb7e9717bc22e580e47 = private unnamed_addr constant <{ ptr, [12 x i8] }> <{ ptr @alloc_4adda3ed1088f74f07ee43568cdd9f39, [12 x i8] c";\00\00\00#\00\00\00\0D\00\00\00" }>, align 4 
          12:  
          13: ; <global_allocator_attributes::foobar::Allocator as core::alloc::global::GlobalAlloc>::alloc 
          14: ; Function Attrs: cold noreturn uwtable 
          15: define noalias noundef nonnull ptr @"_ZN99_$LT$global_allocator_attributes..foobar..Allocator$u20$as$u20$core..alloc..global..GlobalAlloc$GT$5alloc17h6a865fb939c32a3bE"(ptr noalias noundef nonnull readonly align 1 captures(none) %self, i32 noundef range(i32 1, -2147483647) %layout.0, i32 noundef %layout.1) unnamed_addr #0 { 
          16: start: 
          17: ; call std::panicking::begin_panic 
          18:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_b770eaa3f4771da96efd94be0aca7ca5) #7 
          19:  unreachable 
          20: } 
          21:  
          22: ; <global_allocator_attributes::foobar::Allocator as core::alloc::global::GlobalAlloc>::dealloc 
          23: ; Function Attrs: cold noreturn uwtable 
          24: define void @"_ZN99_$LT$global_allocator_attributes..foobar..Allocator$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7dealloc17h8a2527dd1e1c5938E"(ptr noalias noundef nonnull readonly align 1 captures(none) %self, ptr noundef readnone captures(none) %ptr, i32 noundef range(i32 1, -2147483647) %layout.0, i32 noundef %layout.1) unnamed_addr #0 { 
          25: start: 
          26: ; call std::panicking::begin_panic 
          27:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_a5aa75597376cd18f9df6ea9fddc2db2) #7 
          28:  unreachable 
          29: } 
          30:  
          31: ; <global_allocator_attributes::foobar::Allocator as core::alloc::global::GlobalAlloc>::realloc 
          32: ; Function Attrs: cold noreturn uwtable 
          33: define noalias noundef nonnull ptr @"_ZN99_$LT$global_allocator_attributes..foobar..Allocator$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7realloc17h2362b3af3e64fce2E"(ptr noalias noundef nonnull readonly align 1 captures(none) %self, ptr noundef readnone captures(none) %ptr, i32 noundef range(i32 1, -2147483647) %layout.0, i32 noundef %layout.1, i32 noundef %new_size) unnamed_addr #0 { 
          34: start: 
          35: ; call std::panicking::begin_panic 
          36:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_fea0b74bc1f394cd9f32c70385fabd3f) #7 
          37:  unreachable 
          38: } 
          39:  
          40: ; <global_allocator_attributes::foobar::Allocator as core::alloc::global::GlobalAlloc>::alloc_zeroed 
          41: ; Function Attrs: cold noreturn uwtable 
          42: define noalias noundef nonnull ptr @"_ZN99_$LT$global_allocator_attributes..foobar..Allocator$u20$as$u20$core..alloc..global..GlobalAlloc$GT$12alloc_zeroed17hdd644c90bc5da11cE"(ptr noalias noundef nonnull readonly align 1 captures(none) %self, i32 noundef range(i32 1, -2147483647) %layout.0, i32 noundef %layout.1) unnamed_addr #0 { 
          43: start: 
          44: ; call std::panicking::begin_panic 
          45:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_672a73527c968cb7e9717bc22e580e47) #7 
          46:  unreachable 
          47: } 
          48:  
          49: ; __rustc::__rust_alloc 
          50: ; Function Attrs: cold noreturn allockind("alloc,uninitialized,aligned") allocsize(0) uwtable 
next:13'0                                                                                                  X error: no match found
          51: define noalias noundef nonnull ptr @_RNvCs8tQ9On8d7yC_7___rustc12___rust_alloc(i32 noundef %size, i32 allocalign noundef %align) unnamed_addr #1 { 
next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
next:13'1                                                ?                                                                                                        possible intended match
          52: start: 
next:13'0     ~~~~~~~
          53:  %0 = add i32 %align, -1 
next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
          54:  %1 = icmp sgt i32 %0, -1 
next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          55:  tail call void @llvm.assume(i1 %1) 
next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          56: ; call std::panicking::begin_panic 
next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          57:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_b770eaa3f4771da96efd94be0aca7ca5) #7 
next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          58:  unreachable 
next:13'0     ~~~~~~~~~~~~~
          59: } 
next:13'0     ~~
          60:  
next:13'0     ~
          61: ; __rustc::__rust_dealloc 
next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
          62: ; Function Attrs: cold noreturn allockind("free") uwtable 
next:20                                                                X error: no match found
          63: define void @_RNvCs8tQ9On8d7yC_7___rustc14___rust_dealloc(ptr allocptr noundef readnone captures(none) %ptr, i32 noundef %size, i32 noundef %align) unnamed_addr #2 { 
next:20       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          64: start: 
next:20       ~~~~~~~
          65:  %0 = add i32 %align, -1 
next:20       ~~~~~~~~~~~~~~~~~~~~~~~~~
          66:  %1 = icmp sgt i32 %0, -1 
next:20       ~~~~~~~~~~~~~~~~~~~~~~~~~~
          67:  tail call void @llvm.assume(i1 %1) 
next:20       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          68: ; call std::panicking::begin_panic 
next:20       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          69:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_a5aa75597376cd18f9df6ea9fddc2db2) #7 
next:20       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          70:  unreachable 
next:20       ~~~~~~~~~~~~~
          71: } 
next:20       ~~
          72:  
next:20       ~
          73: ; __rustc::__rust_realloc 
next:20       ~~~~~~~~~~~~~~~~~~~~~~~~~
          74: ; Function Attrs: cold noreturn allockind("realloc,aligned") allocsize(3) uwtable 
next:27                                                                                        X error: no match found
          75: define noalias noundef nonnull ptr @_RNvCs8tQ9On8d7yC_7___rustc14___rust_realloc(ptr allocptr noundef readnone captures(none) %ptr, i32 noundef %size, i32 allocalign noundef %align, i32 noundef %new_size) unnamed_addr #3 { 
next:27       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          76: start: 
next:27       ~~~~~~~
          77:  %0 = add i32 %align, -1 
next:27       ~~~~~~~~~~~~~~~~~~~~~~~~~
          78:  %1 = icmp sgt i32 %0, -1 
next:27       ~~~~~~~~~~~~~~~~~~~~~~~~~~
          79:  tail call void @llvm.assume(i1 %1) 
next:27       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          80: ; call std::panicking::begin_panic 
next:27       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          81:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_fea0b74bc1f394cd9f32c70385fabd3f) #7 
next:27       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          82:  unreachable 
next:27       ~~~~~~~~~~~~~
          83: } 
next:27       ~~
          84:  
next:27       ~
          85: ; __rustc::__rust_alloc_zeroed 
next:27       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          86: ; Function Attrs: cold noreturn allockind("alloc,zeroed,aligned") allocsize(0) uwtable 
next:34'0                                                                                           X error: no match found
          87: define noalias noundef nonnull ptr @_RNvCs8tQ9On8d7yC_7___rustc19___rust_alloc_zeroed(i32 noundef %size, i32 allocalign noundef %align) unnamed_addr #4 { 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
next:34'1                                                        ?                                                                                                       possible intended match
          88: start: 
next:34'0     ~~~~~~~
          89:  %0 = add i32 %align, -1 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
          90:  %1 = icmp sgt i32 %0, -1 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          91:  tail call void @llvm.assume(i1 %1) 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          92: ; call std::panicking::begin_panic 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          93:  tail call void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) @alloc_476509aa7047bd805d630c6546685797, i32 noundef 14, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16) @alloc_672a73527c968cb7e9717bc22e580e47) #7 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          94:  unreachable 
next:34'0     ~~~~~~~~~~~~~
          95: } 
next:34'0     ~~
          96:  
next:34'0     ~
          97: ; std::panicking::begin_panic 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          98: ; Function Attrs: cold minsize noinline noreturn optsize uwtable 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          99: declare void @_ZN3std9panicking11begin_panic17h464a496c2e832da9E(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance), i32 noundef, ptr noalias noundef readonly align 4 captures(address, read_provenance) dereferenceable(16)) unnamed_addr #5 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         100:  
next:34'0     ~
         101: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         102: declare void @llvm.assume(i1 noundef) #6 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         103:  
next:34'0     ~
         104: attributes #0 = { cold noreturn uwtable "target-cpu"="generic" "target-features"="+strict-align,+v6,+vfp2,-d32" } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         105: attributes #1 = { cold noreturn allockind("alloc,uninitialized,aligned") allocsize(0) uwtable "alloc-family"="__rust_alloc" "target-cpu"="generic" "target-features"="+strict-align,+v6,+vfp2,-d32" } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         106: attributes #2 = { cold noreturn allockind("free") uwtable "alloc-family"="__rust_alloc" "target-cpu"="generic" "target-features"="+strict-align,+v6,+vfp2,-d32" } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         107: attributes #3 = { cold noreturn allockind("realloc,aligned") allocsize(3) uwtable "alloc-family"="__rust_alloc" "target-cpu"="generic" "target-features"="+strict-align,+v6,+vfp2,-d32" } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         108: attributes #4 = { cold noreturn allockind("alloc,zeroed,aligned") allocsize(0) uwtable "alloc-family"="__rust_alloc" "target-cpu"="generic" "target-features"="+strict-align,+v6,+vfp2,-d32" } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         109: attributes #5 = { cold minsize noinline noreturn optsize uwtable "target-cpu"="generic" "target-features"="+strict-align,+v6,+vfp2,-d32" } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         110: attributes #6 = { mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         111: attributes #7 = { noreturn } 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         112:  
next:34'0     ~
         113: !llvm.module.flags = !{!0} 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
         114: !llvm.ident = !{!1} 
next:34'0     ~~~~~~~~~~~~~~~~~~~~
         115:  
next:34'0     ~
         116: !0 = !{i32 8, !"PIC Level", i32 2} 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         117: !1 = !{!"rustc version 1.92.0-nightly (382111ae7 2025-09-20)"} 
next:34'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>
------------------------------------------

---- [codegen] tests/codegen-llvm/global-allocator-attributes.rs stdout end ----

failures:
    [codegen] tests/codegen-llvm/global-allocator-attributes.rs

test result: FAILED. 710 passed; 1 failed; 218 ignored; 0 measured; 0 filtered out; finished in 17.03s

@bors
Copy link
Collaborator

bors commented Sep 20, 2025

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 20, 2025
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-rustc-dev-guide Area: rustc-dev-guide A-testsuite Area: The testsuite used to check the correctness of rustc O-unix Operating system: Unix-like rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants